#include <iostream>
#include <cstdlib>

int main()
{
    // int *a = (int *)malloc(sizeof(int));
    // if (a == nullptr)
    //     return -1;
    // *a = 10;
    // std::cout << *a << std::endl;
    // free(a);

    // new :
    // 1、不需要计算所需的空间大小
    // 2、不需要对返回指针进行强制类型转换
    // 3、不需要对指针判空 : 如果申请失败，new会抛出异常终止程序
    //  int *a = new int;
    //  *a = 10;
    // delete
    //  delete a;

    // int *a = new int[10]; // 申请一维数组
    // for (int i = 0; i < 10; i++)
    // {
    //     a[i] = i + 1;
    // }
    // for (int i = 0; i < 10; i++)
    // {
    //     std::cout << a[i] << " ";
    // }
    // std::cout << std::endl;
    // delete []a;


    //申请二维数组
    // int **a = new int *[2];
    // for (int i = 0; i < 2; i++)
    // {
    //     a[i] = new int[3];
    // }

    // for (int i = 0; i < 2; i++)
    // {
    //     for (int j = 0; j < 3; j++)
    //     {
    //         a[i][j] = i * 3 + j;
    //     }
    // }

    // for (int i = 0; i < 2; i++)
    // {
    //     for (int j = 0; j < 3; j++)
    //     {
    //         std::cout << a[i][j] << " ";
    //     }
    //     std::cout << std::endl;
    // }
    
    //释放二维数组空间
    // for(int i=0;i<2;i++)
    // {
    //     delete []a[i];
    // }
    // delete []a;
    return 0;
}